package com.example.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品实体类
 * 仅用于MongoDB中的collection
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "product")
public class Product {
    
    @Id
    private String id;
    
    /**
     * 商品编号
     */
    private String productCode;
    
    /**
     * 商品名称
     */
    private String productName;
    
    /**
     * 商品价格
     */
    private BigDecimal price;
    
    /**
     * 生产日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date productionDate;
    
    /**
     * 生产厂家
     */
    private String manufacturer;
    
    /**
     * 商品详情
     */
    private ProductDetail detail;
    
    /**
     * 商品详情（嵌套对象）
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ProductDetail {
        /**
         * 商品描述
         */
        private String description;
        
        /**
         * 商品规格
         */
        private String specification;
        
        /**
         * 商品库存
         */
        private Integer stock;
        
        /**
         * 商品分类
         */
        private String category;
    }
}